package com.gjintel.business.proj.dao;

import java.util.Date;
import java.util.List;

import com.gjintel.business.proj.model.ProjectBidInfo;
import com.gjintel.business.proj.model.ProjectInfo;
import com.gjintel.sdk.base.dao.Page;
import com.gjintel.sdk.base.dao.Sort;

/**
 * @description xia
 * @author wwang 
 * @date 2016-8-16
 */
public interface IProjectInfoDao {

	/**
	 * @description 根据ids 查询项目集合
	 * @author wei 
	 * @date 2016-8-17
	 * @param ids
	 * @param project
	 * @param page
	 * @param sort
	 * @param startTime
	 * @param stopTime
	 * @param bidStartTime
	 * @param bidStopTime
	 * @param startMoney
	 * @param endMoney
	 * @return
	 */
	List<ProjectInfo> findAllByIds(String ids, ProjectInfo project,
			Page page, Sort sort, Date startTime, Date stopTime,
			Date bidStartTime, Date bidStopTime, Double startMoney,
			Double endMoney);

	/**
	 * @description 根据proj_id得到参加报价的数量
	 * @author wwang 
	 * @date 2016年9月12日
	 * @param projId
	 * @param isEvalution 是否查询有效标
	 * @return
	 */
	int getProjectBidderByProjId(String projId,boolean isEvalution);

	
	/**
	 * @description 查询开标项目
	 * @author wwang 
	 * @date 2016-8-23
	 * @param project
	 * @param page
	 * @param sort
	 * @param startTime
	 * @param stopTime
	 * @param bidStartTime
	 * @param bidStopTime
	 * @return
	 */
	List<ProjectInfo> findBiddList(ProjectInfo project, Page page, Sort sort,
			java.sql.Date startTime, java.sql.Date stopTime,
			java.sql.Date bidStartTime, java.sql.Date bidStopTime);

	/**
	 * @description 根据项目id查询投标信息
	 * @author wwang 
	 * @date 2016-8-24
	 * @param projectId
	 * @return
	 */
	List<ProjectBidInfo> findProjectBidList(String projectId);

	

	/**
	 * @description 根据项目id,和投标人id查询投标信息 
	 * @author wwang 
	 * @date 2016-8-30
	 * @param projectId
	 * @param id
	 * @return
	 */
	ProjectBidInfo getProjectBidderByProjIdAndBidderId(String projectId,
			String bidderId);

	/**
	 * @description 获取专家评标列表  
	 * @author wwang 
	 * @date 2016-8-31
	 * @param project
	 * @param page
	 * @param sort
	 * @param startTime
	 * @param stopTime
	 * @param bidTime
	 * @param bidStopTime
	 * @return
	 */
	List<ProjectInfo> findProjectBiddList(ProjectInfo project, Page page,
			Sort sort, java.sql.Date startTime, java.sql.Date stopTime,
			java.sql.Date bidTime, java.sql.Date bidStopTime);

	/**
	 * @description 通过项目 id查询所有的报价信息
	 * @author wwang 
	 * @date 2016-8-31
	 * @param projectId
	 * @return
	 */
	List<ProjectBidInfo> findProjectBidListByProjectId(Page page,ProjectBidInfo bidInfo);

	/**
	 * @description 查询用户所属区域下的项目的最大数量
	 * @author wwang 
	 * @date 2016-9-1
	 * @param i
	 * @param getpUnit
	 * @return
	 */
	Object queryMaxCountOfSameArea(int year,String unitId,String projectType,String tradeType);

	/**
	 * 根据 processId得到projectInfo对象
	 * @param processId
	 * @return ProjectInfo
	 */
	ProjectInfo findSingleByProcessId(String processId);
	
	/**
	 * @description 是否投过标
	 * @author wwang 
	 * @date 2016年9月19日
	 * @param projectId
	 * @param bidderId
	 * @return
	 */
	public ProjectBidInfo isBidByProjIdAndBidderId(String projectId,String bidderId);

	/**
	 * 查询中标之后的项目
	 * @param page
	 * @param pj
	 * @param status
	 * @return
	 */
	List<ProjectInfo> findAllByStatus(Page page, ProjectInfo pj, String status);
	
	/**
	 * 获取不评标项目中标单位
	 * @param id
	 * @return
	 */
	public List<ProjectBidInfo> getProjectBiddersByProjId(String id);
	
}
